From 21d1ab42d18f9b74091d8c3fac15229533a6afec Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 4 Feb 2018 22:21:37 +0100 Subject: [PATCH] icon-browser: Stop using ::key-press-event --- demos/icon-browser/iconbrowserwin.c | 32 ++++++++++++++++++++++++----- demos/icon-browser/window.ui | 1 - 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/demos/icon-browser/iconbrowserwin.c b/demos/icon-browser/iconbrowserwin.c index 116a70dc12..91be683739 100644 --- a/demos/icon-browser/iconbrowserwin.c +++ b/demos/icon-browser/iconbrowserwin.c @@ -54,6 +54,7 @@ struct _IconBrowserWindow GtkWidget *image6; GtkWidget *label6; GtkWidget *description; + GtkEventController *controller; }; struct _IconBrowserWindowClass @@ -286,13 +287,16 @@ populate (IconBrowserWindow *win) } static gboolean -key_press_event_cb (GtkWidget *widget, - GdkEvent *event, - gpointer data) +key_event_cb (GtkEventController *controller, + guint keyval, + guint keycode, + GdkModifierType state, + gpointer data) { IconBrowserWindow *win = data; - return gtk_search_bar_handle_event (GTK_SEARCH_BAR (win->searchbar), event); + return gtk_search_bar_handle_event (GTK_SEARCH_BAR (win->searchbar), + gtk_get_current_event ()); } static void @@ -480,12 +484,31 @@ icon_browser_window_init (IconBrowserWindow *win) symbolic_toggled (GTK_TOGGLE_BUTTON (win->symbolic_radio), win); + win->controller = gtk_event_controller_key_new (GTK_WIDGET (win)); + g_signal_connect (win->controller, "key-pressed", G_CALLBACK (key_event_cb), win); + populate (win); } +static void +icon_browser_window_finalize (GObject *object) +{ + IconBrowserWindow *win = ICON_BROWSER_WINDOW (object); + + g_hash_table_unref (win->contexts); + + g_object_unref (win->controller); + + G_OBJECT_CLASS (icon_browser_window_parent_class)->finalize (object); +} + static void icon_browser_window_class_init (IconBrowserWindowClass *class) { + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->finalize = icon_browser_window_finalize; + g_type_ensure (ICON_STORE_TYPE); gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), @@ -516,7 +539,6 @@ icon_browser_window_class_init (IconBrowserWindowClass *class) gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), item_activated); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), selected_context_changed); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), symbolic_toggled); - gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), key_press_event_cb); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), copy_to_clipboard); } diff --git a/demos/icon-browser/window.ui b/demos/icon-browser/window.ui index c56dcbaa6c..ae81f4af49 100644 --- a/demos/icon-browser/window.ui +++ b/demos/icon-browser/window.ui @@ -9,7 +9,6 @@ Icon Browser 1024 768 - Icon Browser -- 2.30.2